<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>

  <ul id="resTree"></ul>


 <script th:inline="javascript">
/*<![CDATA[*/
    var roleId = /*[[${roleId}]]*/ null;
$(function(){
    $('#resTree').tree({
        url: "/res/auth_tree?roleId="+roleId,
        method: 'get',
        checkbox:true,
        lines:true,
        animate: true,
        onlyLeafCheck:true,
        dnd:false, //是否允许拖动
        loadFilter: function(data){
            //alert("--------:"+JSON.stringify(data));
            return data;
            /*            if(data instanceof Array){*/
        },
        onLoadError:function(error){
            //showMsg('加载数据失败11');
        },
        onDblClick:function (node) {
            $(this).tree(node.state == 'closed' ? 'expand' : 'collapse', node.target);
        },
        onBeforeCheck:function (node, checked) {
            if(node.resType != "AUTH"){
                return false;
            }
        },
        onCheck:function (node, checked) {
            //console.log(node.text+"--"+checked);
            if(checked){ //如果选中，先看delArr有没有，如果没有表示要新增，如果有，则是取消操作,移除这个元素
                var flag=false;
                for(var i=0; i<delArrIds.length; i++){
                    if(node.id==delArrIds[i]){
                        delArrIds.splice(i,1);
                        delArrTexts.splice(i,1);
                        flag=true;
                        break;
                    }
                }
                if(!flag){
                    addArrIds.push(node.id);
                    addArrTexts.push(node.text);
                }
            }else{ //放弃勾选,先看addArr里有没有，如果有，则只是取消了新增的，如果没有，说明是取消了初始化就勾选了的
                for(var i=0;i<addArrIds.length;i++){
                    if(node.id==addArrIds[i]){
                        addArrIds.splice(i,1);
                        addArrTexts.splice(i,1);
                        flag=true;
                        break;
                    }
                }
                if(!flag){
                    delArrIds.push(node.id);
                    delArrTexts.push(node.text);
                }
            }
        },
        onLoadSuccess:function (node, data) {
        }
    })
})

var addArrIds=[];
var addArrTexts=[];
var delArrIds=[];
var delArrTexts=[];

function saveTree() {
    if(addArrIds.length==0 && delArrIds.length==0){
        showMsg('请至少选择一个权限操作');
        return;
    }
    var msg='确认要操作以下权限吗?\<br\/\>';
    if(addArrIds.length!=0){
        msg+='新增：\<span style=\"color: blue\"\>【'+addArrTexts.join("、")+'】\<\/span\>\<br\/\>';
    }
    if(delArrIds.length!=0){
        msg+='删除：\<span style=\"color: blue\"\>【'+delArrTexts.join("、")+'】\<\/span\>';
    }

    $.messager.confirm({
        width: 350,
        title: '提示',
        msg: msg,
        ok: "是",
        cancel: "否",
        fn: function (r) {
            if (r){
                $.messager.progress();
                $.ajax({
                    type:'GET',
                    contentType: "application/json; charset=utf-8",
                    url:"/role/bind_res?roleId="+roleId+"&addResIds="+addArrIds.join("-")+"&delResIds="+delArrIds.join("-"),
                    cache:false,
                    dataType:'json',
                    success:function(data){
                        if(data.code!=0){
                            $.messager.alert('提示', data.msg, 'error');
                        }else{
                            showMsg('操作成功');
                            $("#editDlg3").dialog('destroy');
                        }
                    },
                    error:function(e) {
                        $.messager.alert('提示', '操作失败', 'error');

                    },
                    complete:function () {
                        $.messager.progress('close');
                    }
                });
            }
        }
    });
}
/*]]>*/
</script>
</body>
</html>